Questo ha una risposta molto chiara, in realtà: Il codice sorgente è venuto prima - con un grande margine.
Prima di fornire i dettagli tecnici, un po 'di prospettiva:
I primi linguaggi di programmazione sono stati tutti tradotti in linguaggio macchina o assemblatore a mano . L'idea di usare un pezzo di software per automatizzare questa traduzione (tramite un compilatore o un valutatore) veniva sempre dopo, ed era tutt'altro che intuitiva.
Considera questa citazione dell'articolo di Wikipedia su FORTRAN che illustra i compilatori di riluttanza che dovevano affrontare:
… the first FORTRAN compiler [was] delivered in April 1957. This was the first optimizing compiler, because customers were reluctant to use a high-level programming language unless its compiler could generate code whose performance was comparable to that of hand-coded assembly language. [emphasis mine]
= > Nel momento in cui il compilatore FORTRAN ha colpito il mercato (1957), le persone erano già felici di programmare sia in linguaggio assembly che FORTRAN.
Il caso era simile per LISP (di Hacker e pittori ) :
Steve Russell said, look, why don't I program this eval …, and I said to him, ho, ho, you're confusing theory with practice, this eval is intended for reading, not for computing. But he went ahead and did it. That is, he compiled the eval in my paper into IBM 704 machine code, fixing bug, and then advertised this as a Lisp interpreter, which it certainly was. So at that point Lisp had essentially the form that it has today..."
Ancora una volta, non solo il codice sorgente (in LISP) precede l'interprete, quest'ultimo non era nemmeno implicito nel primo.
Ma questi sviluppi sono relativamente tardi. Anche senza considerare il motore analitico di Charles Babbage e il relativo primo programma , ci sono stati linguaggi di programmazione nel 20 ° secolo che hanno preceduto i compilatori:
Plankalkül di Konrad Zuse e il costrutto matematico di λ-calculus presentato da Alonzo Church. Entrambi questi sono linguaggi di programmazione indubbiamente formalmente specificati, ma nessuno dei due aveva un compilatore al momento.
Per mettere questo in prospettiva, il calcolo λ è degli anni '30, e Plankalkül è stato sviluppato intorno al 1945. Al contrario, il primo compilatore FORTRAN è uscito nel 1957 (ma ancora tre anni dopo FORTRAN è stato specificata).